import * as goodsApi from '@/api/goods';

export default {
  namespaced: true,
  state() {
    return {
      // 三级页面商品列表
      subCategoryGoodsList: {
        items: [],
        page: 1,
        pageSize: 10,
        pages: 1,
        counts: 0,
      },
      // 商品详情
      goodsDetail: {
        categories: [],
        mainPictures: [],
      },
      // 配送地址
      area: [],
      // 同类推荐
      goodsRelevant: [],
      // 24小时热销
      goodsHot1: [],
      // 周榜热销
      goodsHot2: [],
    };
  },
  mutations: {
    // 三级页面商品列表  // 懒加载拼接数据
    SET_SUB_CATEGORY_GOODS_LIST(state, newValue) {
      state.subCategoryGoodsList = {
        ...newValue,
        items: state.subCategoryGoodsList.items.concat(newValue.items),
      };
    },
    // 重置数据
    RESET_SUB_CATEGORY_GOODS_LIST(state, newValue) {
      state.subCategoryGoodsList = newValue;
    },
    // 商品详情
    SET_GOODS_DETAIL(state, newValue) {
      state.goodsDetail = newValue;
    },
    // 配送地址
    SET_AREA(state, newValue) {
      state.area = newValue;
    },
    // 同类推荐
    SET_GOODS_RELEVANT(state, newValue) {
      state.goodsRelevant = newValue;
    },
    // 24小时热销
    SET_GOODS_HOT1(state, newValue) {
      state.goodsHot1 = newValue;
    },
    // 周榜热销
    SET_GOODS_HOT2(state, newValue) {
      state.goodsHot2 = newValue;
    },

  },
  actions: {
    // 三级页面商品列表
    async updateSubCategoryGoodsList({ commit }, data) {
      const pageRes = {
        success: false,
        msg: '',
      };
      await goodsApi.getSubCategoryGoods(data)
        .then((res) => {
          pageRes.success = true;
          pageRes.msg = res.msg;
          commit('SET_SUB_CATEGORY_GOODS_LIST', res.result);
        })
        .catch((err) => {
          pageRes.success = false;
          pageRes.msg = err.message;
        });
      return pageRes;
    },
    async resetSubCategoryGoodsList({ commit }, data) {
      const pageRes = {
        success: false,
        msg: '',
      };
      await goodsApi.getSubCategoryGoods(data)
        .then((res) => {
          pageRes.success = true;
          pageRes.msg = res.msg;
          commit('RESET_SUB_CATEGORY_GOODS_LIST', res.result);
        })
        .catch((err) => {
          pageRes.success = false;
          pageRes.msg = err.message;
        });
      return pageRes;
    },
    // 商品详情
    async updateGoodsDetail({ commit }, params) {
      const pageRes = {
        success: false,
        msg: '',
      };
      await goodsApi.getGoods(params)
        .then((res) => {
          pageRes.success = true;
          pageRes.msg = res.msg;
          commit('SET_GOODS_DETAIL', res.result);
        })
        .catch((err) => {
          pageRes.success = false;
          pageRes.msg = err.message;
        });
      return pageRes;
    },
    // 配送地址
    async updateArea({ commit }) {
      await goodsApi.getArea()
        .then((res) => {
          commit('SET_AREA', res);
        });
    },

    // 同类推荐
    async updateGoodsRelevant({ commit }, params) {
      await goodsApi.getGoodsRelevant(params)
        .then((res) => {
          commit('SET_GOODS_RELEVANT', res.result);
        });
    },
    // 热销推荐
    async updateGoodsHot({ commit }, params) {
      if (params.type === 1) {
        await goodsApi.getGoodsHot(params)
          .then((res) => {
            commit('SET_GOODS_HOT1', res.result);
          });
      } else {
        await goodsApi.getGoodsHot(params)
          .then((res) => {
            commit('SET_GOODS_HOT2', res.result);
          });
      }
    },
  },
};
